package com.piece.core.log.annotation;

import com.piece.core.log.enums.AuditLogType;
import java.lang.annotation.*;

/**
 * 审计日志注解
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface AuditLog {
    /**
     * 模块/表名
     */
    String table() default "";

    /**
     * 数据源
     */
    String source() default "piece";

    /**
     * 功能
     */
    AuditLogType operationType() default AuditLogType.OTHER;

    /**
     * 业务主键表达式
     */
    String bizId() default "";

    /**
     * 日志内容表达式
     */
    String message() default "";

    /**
     * 额外信息表达式
     */
    String extra() default "";

    /**
     * 是否保存请求的参数
     */
    boolean isSaveRequestData() default true;
}
